package com.wcs.exam.dao.impl.mapper.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户信息
 * </p>
 *
 * @author wcs
 * @since 2025-03-13
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("users")
public class Users implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 密码盐
     */
    private String mobileSalt;

    /**
     * 登录密码
     */
    private String mobilePsw;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 用户性别(1男，2女，3保密)
     */
    private Integer userSex;

    /**
     * 出生时间
     */
    private LocalDate userAge;

    /**
     * 用户头像
     */
    private String userHead;

    /**
     * 微信唯一ID
     */
    private String unionId;

    /**
     * 微信OpenId
     */
    private String openId;

    /**
     * 城市
     */
    private String city;

    /**
     * 省份
     */
    private String province;

    /**
     * 国家
     */
    private String country;

    /**
     * 注册来源
     */
    private Integer registerSource;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 人脸识别最佳照片
     */
    private String bestFrame;

    /**
     * 人脸识别相似度
     */
    private BigDecimal faceSim;

    /**
     * 人脸错误次数
     */
    private Integer faceErrorCount;

    /**
     * 实名认证状态(1:未认证、2:已认证)
     */
    private Integer certificationStatus;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态(1:正常，0:禁用)
     */
    private Integer status;

    /**
     * 创建时间
     */
    private LocalDateTime gmtCreate;

    /**
     * 修改时间
     */
    private LocalDateTime gmtModified;
}
